package effective.java.item34;

public enum TextFormat {
    PLAIN {
        @Override
        public String format(String content) {
            // 纯文本处理逻辑，例如去除多余空格
            return content.trim().replaceAll("\\s+", " ");
        }
    },
    HTML {
        @Override
        public String format(String content) {
            // HTML处理逻辑，例如转义特殊字符
            return content.replace("<", "&lt;").replace(">", "&gt;");
        }
    },
    MARKDOWN {
        @Override
        public String format(String content) {
            // Markdown处理逻辑，例如转换Markdown语法到HTML
            // 这里简化处理，实际可能需要更复杂的转换库
            return content.replace("# ", "<h1>").replace("\n", "</h1>\n");
        }
    };

    // 抽象方法定义策略
    public abstract String format(String content);

    // 使用示例
    public static void main(String[] args) {
        String sampleContent = "This is a # Sample Title\nAnd some *text*.";
        System.out.println("Original Content:\n" + sampleContent);

        // 应用Markdown格式化策略
        String formatted = MARKDOWN.format(sampleContent);
        System.out.println("\nMarkdown Formatted:\n" + formatted);
    }
}
